import {
  WEEKS_WORD_ENUM, CONSULTATION_STATUS_ENUMS
} from '@CONSTANTS/consultation'
import { COUPON_TYPE_ENUM, COUPON_STATUS_ENUM } from '@CONSTANTS/coupon'
import { ScheduleTimesITF, DoctorITF } from '@INTERFACES/Doctor'
import { PatientITF } from '@INTERFACES/Patient'
import { CustomI18NITF } from '@INTERFACES/Common'

export interface MedicineArrayITF {
  MedicineId: string;
  _id: string;
  MedicineName: CustomI18NITF;
}

export interface PatronITF {
  SearchName: string;
  UserId: string;
  UserName: string;
}

export interface Last7DaysITF {
  Day: number;
  Week: WEEKS_WORD_ENUM;
  WeekNumber: number;
  FullTime: string;
  Date: number;
}

export type MapLast7DaysITF = {
  [key in WEEKS_WORD_ENUM]?: ScheduleTimesITF
}

export interface ScheduleDateITF {
  DateString: string;
  End: string;
  Start: string;
  Week: WEEKS_WORD_ENUM;
}

export interface ConsultationITF {
  AcceptDate: number;
  CompleteDate: number;
  CreatedDate: number;
  DateBucket: string;
  Description: string;
  Diagnosis: string;
  Doctor: DoctorITF;
  DoctorAdvice: string;
  MedicationRecommendation: string;
  MedicineArray: MedicineArrayITF[];
  ModifiedBy: string;
  ModifiedDate: number;
  Patient: PatientITF;
  Patron: PatronITF;
  PictureFileNames?: string[];
  Reason: string;
  ScheduleDate: ScheduleDateITF;
  Status: CONSULTATION_STATUS_ENUMS;
  Type: string;
  p8Id: string;
  OrderId: string
}

export interface CouponItemITF {
  ConsumedDate: number;
  Content: string;
  Count: number;
  CreatedDate: number;
  Doctor: DoctorITF;
  EndDate: number;
  EntityType: COUPON_TYPE_ENUM;
  Number: number;
  ReferenceValue: string;
  RestrictionId: string;
  Source: string;
  StartDate: number;
  Status: COUPON_STATUS_ENUM;
  Type: string;
  Value: number;
}
